The present invention relates generally to a computer implemented method, data processing system, and computer program product for integrating data processing systems having multiple hardware resources and multiple logical partitions (LPAR). More specifically, the present invention relates to a hypervisor mediating access to one or more hardware resources in a manner that the LPAR sends and receives signals relating to the hardware resource in a manner similar to communications direct to the hardware resource.
Virtualization is the creation of logical substitutes for physical resources. The substitutes have the same functions and external interfaces as their physical counterparts, but differ in attributes, such as size, performance, and cost. These substitutes are called virtual resources, and their users are typically unaware of the substitution. Virtualization is commonly applied to hardware resources by combining multiple hardware resources into shared pools from which a logical partition (LPAR) receives virtual resources. A hardware resource is a device that is physical. Examples of hardware resources include Ethernet adapters, I/O controller, audio adapters, and the like. In contrast, a virtual resource is the interface of the physical resource as presented to a logical partition. With virtualization, a computer system administrator can make one hardware resource perform as if it were multiple virtual resources.
A key software component supporting virtualization is the hypervisor. A hypervisor is used to logically partition the hardware into pools of virtualized resources known as logical partitions. Such logical partitions are made available to client entities, for example, operating systems and applications. Each logical partition of the hypervisor is unable to access hardware resources of a second logical partition unless such hardware resources are reassigned by the hypervisor. A hypervisor is sometimes known as a hosting partition.
Within a logical partition, an operating system may be stored. An OS partition is a logical partition in which an operating system is stored and executes. An operating system is used to perform basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking, and managing file systems. Such tasks are limited to the extent that the hypervisor allocates hardware resources to the operating system. Such hardware resources include input-output devices, and file storage adapters, and the like.
In addition to hardware resources enumerated above, a hypervisor may allocate I/O adapters. An I/O adapter is a physical network interface that provides memory-mapped input/output interface for placing queues into physical memory and provides an interface for control information. Control information can be, for example, a selected interrupt to generate when a data packet arrives. A data packet is a formatted block of data carried by a computer or communication network. A core function of the I/O adapter is handling the physical signaling characteristics of the network media and converting the signals arriving from the network to logical values. Depending on the type of I/O adapter, additional functional layers of the Open Systems Interconnection (OSI) model protocol stack may be handled within the I/O adapter, for example, the data link layer functions and the network layer functions, among others. In contrast, higher-level communication functions may be performed by the operating system to which the I/O adapter is assigned, or by applications within the operating system.
Servers are particularly dependent on the operation of I/O adapters to accomplish the functions of a server. In addition to providing data to users across a network, servers can draw attacks by malicious and unauthorized people.